Focusing the Optimization of Software Architecture Models Using Non-Functional Requirements
نویسندگان
چکیده
Model-driven techniques enable early prediction of the non-functional properties, such as performance, reliability, and costs, of a software architecture on a model basis. This allows to have an early assessment of the software architecture to avoid expensive redevelopments in late phases of the software development process if the non-functional requirements are not met. Even though there is usually a rough idea of requirements for the conflicting non-functional properties, the exact required values may be unclear, thus requiring a trade-off decision between possible architectural designs. Non-functional requirements can be expressed in different ways. On the one hand, certain constraints may be identified that specify worst acceptable values for the non-functional properties. On the other hand, certain desired goal values may be identified for the non-functional properties. Designing architectures that exhibit such good trade-off between multiple non-functional properties and respect the non-functional requirements is hard. Even with a given functional design, many degrees of freedom in the software architecture (e.g. component deployment or server configuration) span a large design space. Searching through this large design space manually is tedious, error-prone, and sometimes even impossible. Existing approaches are able to search through the design space automatically. However, these approaches explore the whole search space and require to analyze a large number of architectural candidates. As the quality prediction of an architectural design is non-trivial and computationally expensive, these approaches are time-consuming. Furthermore, a rough idea for the quality requirements of the software architecture usually already exists, such that many solutions found by the approaches cannot be considered as a possible architecture. This diploma thesis presents an approach to integrate rough non-functional requirement estimations into an automated component-based software architecture model optimization approach to focus the search on particularly interesting regions of the objective space. This approach aims at improving both, the quality of the solutions found and the time needed to find interesting solutions. The specific non-functional requirements regarded are i) worst acceptable values and ii) goal values for the non-functional properties. To evaluate my approach, I applied it to an architecture model of a component-based business information system. I examined 10 scenarios for the non-functional requirements. Every scenario was examined with 10 optimization runs, each investigating around 1600 architectural candidates. The results indicate that the integration of non-functional requirements into the optimization process can improve the quality of the solutions found, however, the effect depends on the scenario, i.e. the problem and the non-functional requirements. The best results were achieved for the probably most common scenario of having a budget limit: The approach was able to decrease the time needed to find good solutions in the interesting regions of the objective space by more than 20% on average.
منابع مشابه
به کارگیری الگوریتم ژنتیک جهت شناسایی خودکار سرویس ها با توجه به معیارهای کیفی سرویس
Service-oriented architecture improves the stability and operational capability of software systems for passive defense measures. Automatic identification of services using quality of service measures ensures the successful deployment of service-oriented architecture and is great importance to speed up software development life cycle. Little attention to non-functional requirements, no conside...
متن کاملMapping Activity Diagram to Petri Net: Application of Markov Theory for Analyzing Non-Functional Parameters
The quality of an architectural design of a software system has a great influence on achieving non-functional requirements of a system. A regular software development project is often influenced by non-functional factors such as the customers' expectations about the performance and reliability of the software as well as the reduction of underlying risks. The evaluation of non-functional paramet...
متن کاملForaging for Better Deployment of Replicated Service Components
Our work focuses on distributed software services and their requirements in terms of system performance and dependability. We target the problem of finding optimal deployment mappings involving multiple services, i.e. mapping service components in the software architecture to the underlying platforms for best possible execution. We capture important non-functional requirements of distributed se...
متن کاملNon-Functional Requirements Elicitation and Incorporation into Class Diagrams
Top-quality software architecture should consider both functional and non-functional aspects of systems and their association. In the the existing literature, considerable efforts have been directed at functional requirement analysis and design, regardless of the non-functional aspects. This disassociation makes architecture comprehension and evolution hard. This paper proposes a strategy on ho...
متن کاملAutomated Design of Software Architectures for Embedded Systems using Evolutionary Multiobjective Optimization
The design of software architecture for embedded system is one of the big challenges in the research field of modern software engineering. It requires software architects to address a large number of non-functional requirements that can be used to quantify the operation of system. Furthermore, these quality attributes often conflict with each other, for instance, improving system performance of...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010